﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace TowerDefence
{
    public class ShopManager : MonoBehaviour
    {
        MainMenuManager mainManager;           // 主菜单管理器
        PlayerDataManager playerDataManager;   // 玩家数据管理器

        public int goldCost;                   // 购买起始金币的花费
        public int healthCost;                 // 购买生命的花费
        public int bombCost;                   // 购买炸弹的花费
        public int freezeTimeCost;             // 购买冻结时间道具的花费

        private void Start()
        {
            playerDataManager = PlayerDataManager.instance;   // 获取玩家数据管理器的实例
            mainManager = MainMenuManager.instance;           // 获取主菜单管理器的实例
        }

        // 购买起始金币的方法
        public void BuyStartGold()
        {
            if (PlayerDataManager.Gem < goldCost)    // 如果玩家的宝石不足以购买
                return;

            PlayerDataManager.Gem -= goldCost;       // 减去购买花费的宝石

            PlayerDataManager.GoldItemAmount += 1;   // 增加起始金币道具的数量

            mainManager.UpdateCurrency();            // 更新主菜单中的货币显示
            SaveSystem.SaveData(playerDataManager);  // 保存玩家数据
        }

        // 购买生命的方法
        public void BuyHealth()
        {
            if (PlayerDataManager.Gem < healthCost)  // 如果玩家的宝石不足以购买
                return;

            PlayerDataManager.Gem -= healthCost;     // 减去购买花费的宝石

            PlayerDataManager.HealthItemAmount += 1; // 增加生命道具的数量

            mainManager.UpdateCurrency();            // 更新主菜单中的货币显示
            SaveSystem.SaveData(playerDataManager);  // 保存玩家数据
        }

        // 购买炸弹的方法
        public void BuyBomb()
        {
            if (PlayerDataManager.Gem < bombCost)    // 如果玩家的宝石不足以购买
                return;

            PlayerDataManager.Gem -= bombCost;       // 减去购买花费的宝石

            PlayerDataManager.BombItemAmount += 1;   // 增加炸弹道具的数量

            mainManager.UpdateCurrency();            // 更新主菜单中的货币显示
            SaveSystem.SaveData(playerDataManager);  // 保存玩家数据
        }

        // 购买冻结时间道具的方法
        public void BuyFreezeTime()
        {
            if (PlayerDataManager.Gem < freezeTimeCost)  // 如果玩家的宝石不足以购买
                return;

            PlayerDataManager.Gem -= freezeTimeCost;     // 减去购买花费的宝石

            PlayerDataManager.FreezeTimeItemAmount += 1; // 增加冻结时间道具的数量

            mainManager.UpdateCurrency();                // 更新主菜单中的货币显示
            SaveSystem.SaveData(playerDataManager);      // 保存玩家数据
        }

    }
}
